'use strict'

define(['jquery', 'bootstrap', 'select2', 'datetimepicker', 'datetimepickerCN', 'validate', 'validate.en', 'shiftform'], function($) {
  return {
    init : function(){
        
     this.create();
     
    },
    
    create : function() {
        var that = this;
        
        $(document).on('shown.bs.modal', '#add', function(e){
            
            $('select[name="expireType"]').change(function(e){
                  if(e.val == "FIXED_DATE") {
                    $("#effectivEndDate").removeClass('hide');
                    $("#effectiveStartDate").removeClass('hide');
                    $("#effectiveDays").addClass('hide');
                    $("input[name='effectiveDays']").val("0");
                  }else {
                    $("#effectivEndDate").addClass('hide');
                    $("#effectiveStartDate").addClass('hide');
                    $("#effectiveDays").removeClass('hide');
                  }
                });
            
            $(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate
            
            var $form = $(e.currentTarget).find("form")                          //bind shiftform
            
            that.initUpload();
              
            $form.bt_validate();
            
            $form.shiftform({
              beforeSubmit : function(el) {
                $form.trigger("validate.ajax.submit");
                return $.bt_validate.result[$.bt_validate.form_id]
              }
            })
          })
      },
      
      initUpload: function() {
        var imgSrc = $(".upload-cover").find("img").attr("src");
          if(imgSrc == null || imgSrc == undefined) {
            $(".upload-cover").find("img").addClass("hide");
          }
          
          
          $(".upload-cover").hover(function(){
            $(".upload-cover .edit-btn").addClass("in");
          },function(){
            $(".upload-cover .edit-btn").removeClass("in");
          });
          
          console.log(window.__CTX__.cloudUptoken)
          
          $.ajax({
            
            url: window.__CTX__.cloudUptoken,
            // The name of the callback parameter, as specified by the YQL service
            jsonp: "callback",
            // Tell jQuery we're expecting JSONP
            dataType: "jsonp",
            // Work with the response
            success: function( response ) {
              var uploaderCover = Qiniu.uploader({
                runtimes: 'html5,flash,html4',
                browse_button: 'pickCover',
                uptoken: response.token,
                domain: 'http://upload.qiniu.com/',
                max_file_size: '4mb',
                max_retries: 3,
                chunk_size: '2mb',
                save_key: true,
                auto_start: true,
                init: {
                  'UploadProgress': function(up, file) {
                    $('#messageCover').removeClass("hide");
                    $(".edit-btn").addClass("hide").prop("disabled", true);
                    $('#messageCover').html("正在上传图片，请稍后");
                    $('#submitBtn').attr("disabled", "disabled");
                  },
                  'FileUploaded': function(up, file, info) {
                    var res = $.parseJSON(info);
                    var cover_box = '';
                    $('#coverPreview').attr("src", window.__CTX__.cloudProd + "/" + res.key + "-0.6");
                    $('#coverPreviewList').css("display", "block");
                    $('#cover').val(res.key);
                    $('#messageCover').html("加载图片完成");
                    setTimeout(function() {
                      $('#messageCover').addClass("hide");
                      $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                    }, 2000);
                    $('#submitBtn').removeAttr('disabled');
                  },
                  'Error': function(up, err, errTip) {
                    $('#messageCover').html("图片上传异常，请稍后重试");
                  }
                }
              });
            }
          });
      }
          
    
  }
})

